package com.chandra.pos.util;


import com.chandra.pos.dao.entity.OrderStatusEntity;
import com.chandra.pos.dao.entity.StatusEntity;
import com.chandra.pos.model.OrderStatus;
import com.chandra.pos.model.Status;

import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;

/**
 * Created by IntelliJ IDEA.
 * UserEntity: chkumar
 * Date: 5/15/12
 * Time: 2:41 PM
 * To change this template use File | Settings | File Templates.
 */
public class ObjectMapperUtil {


    public static BigDecimal convertlongToMoney(long amount) {
        if (amount == 0)
            return null;
        else
            return (new BigDecimal(amount / 100)).setScale(2, RoundingMode.HALF_UP);
    }

    public static BigDecimal convertToBigDecimal(Float value) {
        if (value == null)
            return null;
        else
            return (new BigDecimal(value, MathContext.DECIMAL32));
    }

    public static BigDecimal convertToBigDecimal(Float value, int precision) {
        if (value == null)
            return null;
        else
            return (new BigDecimal(value, MathContext.DECIMAL32)).setScale(precision, RoundingMode.HALF_UP);
    }

    public static Long convertMoneyToLong(BigDecimal amount) {
        if (amount == null)
            return null;
        else {
            return Math.round((amount.doubleValue() * 100));
        }
    }

//    public static ProductEntity mapModelToEntity(Product product) {
//        ProductEntity entity = new ProductEntity();
//        entity.setName(product.getName());
//        entity.setDescription(product.getDescription());
//        entity.setStatus(0);
//        entity.setCategory(product.getCategory());
//        entity.setId(product.getId());
//        entity.setSalePrice(product.getSalePrice());
//        entity.setLastUpdated(product.getLastUpdated().getTime());
//        entity.setStockQuantity(product.getStockQuantity());
//        entity.setLastPurchasePrice(product.getPurchasePrice());
//        return entity;  //To change body of created methods use File | Settings | File Templates.
//    }


//    public static Order mapEntityToModel(OrderEntity entity) {
//
//        Order orderEntity = new Order();
//        orderEntity.setId(entity.getId());
//        orderEntity.setDiscount(entity.getDiscount());
//        orderEntity.setOrderDate(new Date(entity.getOrderDate()));
//        orderEntity.setShippingAmount(entity.getShippingAmount());
//        orderEntity.setEmployeeId(entity.getEmployeeId());
//        orderEntity.setNote(entity.getNote());
//        orderEntity.setShippingDate(new Date(entity.getShippingDate()));
//        orderEntity.setTaxAmount(entity.getTaxAmount());
//        orderEntity.setDueAmount(entity.getDueAmount());
//        orderEntity.setTotalAmount(entity.getTotalAmount());
//
//        return orderEntity;
//
//    }

//    public static OrderItem mapEntityToModel(OrderItemEntity entity) {
//
//        OrderItem model = new OrderItem();
//      // model.setProductId(entity.getProductId());
//        model.setSalePrice(entity.getSalePrice());
//        model.setQuantity(entity.getQuantity());
//        //model.setOrderId(entity.getOrderId());
//        return model;
//
//    }

//    public static UserEntity mapEntityToModel(com.chandra.pos.dao.entity.UserEntity userEntityEntity) {
//
//        UserEntity model = new UserEntity();
//        model.setId(userEntityEntity.getId());
//        model.setFirstName(userEntityEntity.getFirstName());
//        model.setModified(new Date(userEntityEntity.getLastModified()));
//        model.setUserName(userEntityEntity.getUserName());
//        model.setLastName(userEntityEntity.getLastName());
//        model.setPrimaryCell(userEntityEntity.getPrimaryCell());
//        model.setSecondaryCell(userEntityEntity.getSecondaryCell());
//        model.setAddress(userEntityEntity.getAddress());
//        model.setCity(userEntityEntity.getCity());
//        model.setState(userEntityEntity.getState());
//        model.setZipCode(userEntityEntity.getZipCode());
//        model.setCountry(userEntityEntity.getCountry());
//        model.setPassword(userEntityEntity.getPassword());
//        model.setEmail(userEntityEntity.getEmail());
//        model.setCreated(new Date(userEntityEntity.getCreated()));
//        model.setStatus(userEntityEntity.getStatus());
//        model.setNote(userEntityEntity.getNote());
//
//        return model;
//    }
//

    public static OrderStatus mapEntityToModel(OrderStatusEntity statusEntity) {

        OrderStatus model = new OrderStatus();

        model.setId(statusEntity.getId());
        // model.setCreated(new Date(statusEntity.getCreated()));
        // model.setNote(statusEntity.getNote());
        return model;
    }

    public static Status mapEntityToModel(StatusEntity statusEntity) {

        Status model = new Status();

        model.setId(statusEntity.getId());
        model.setName(statusEntity.getName());
        model.setDescription(statusEntity.getDescription());
        return model;
    }

//    public static com.chandra.pos.dao.entity.UserEntity mapModelToEntity(UserEntity userEntity) {
//
//
//        com.chandra.pos.dao.entity.UserEntity entity = new com.chandra.pos.dao.entity.UserEntity();
//        entity.setId(userEntity.getId());
//        entity.setFirstName(userEntity.getFirstName());
//        entity.setLastModified(userEntity.getModified().getTime());
//        entity.setUserName(userEntity.getUserName());
//        entity.setLastName(userEntity.getLastName());
//        entity.setPrimaryCell(userEntity.getPrimaryCell());
//        entity.setSecondaryCell(userEntity.getSecondaryCell());
//        entity.setAddress(userEntity.getAddress());
//        entity.setCity(userEntity.getCity());
//        entity.setState(userEntity.getState());
//        entity.setZipCode(userEntity.getZipCode());
//        entity.setCountry(userEntity.getCountry());
//        entity.setPassword(userEntity.getPassword());
//        entity.setEmail(userEntity.getEmail());
//        entity.setCreated(userEntity.getCreated().getTime());
//        entity.setStatus(userEntity.getStatus());
//        entity.setNote(userEntity.getNote());
//        return entity;
//
//    }

//    public static Product mapEntityToModel(ProductEntity entity) {
//        Product model = new Product();
//        model.setId(entity.getId());
//        model.setName(entity.getName());
//        model.setDescription(entity.getDescription());
//        model.setQuanity(entity.getStockQuantity());
//        model.setSalePrice(entity.getSalePrice());
//        model.setCategory(entity.getCategory());
//        model.setLastUpdated(new Date(entity.getLastUpdated()));
//        model.setPurchasePrice(entity.getLastPurchasePrice());
//        model.setStockQuantity(entity.getStockQuantity());
//
//        //   model.setDiscountPrice(entity.);
//        return model;  //To change body of created methods use File | Settings | File Templates.
//    }
//     public static ProductEntity  mapModelToEntity(Product model) {
//      ProductEntity entity=new ProductEntity();
//        entity.setId(entity.getId());
//        entity.setName(entity.getName());
//        entity.setDescription(entity.getDescription());
//     //   model.setDiscountPrice(entity.);
//        return entity;  //To change body of created methods use File | Settings | File Templates.
//    }


//    public static OrderEntity mapEntityToModel(Order orderEntity) {
//
//        OrderEntity entity = new OrderEntity();
//        entity.setId(orderEntity.getId());
//        entity.setCustomerId(orderEntity.getCustomer().getId());
//        entity.setDiscount(orderEntity.getDiscount());
//        entity.setEmployeeId(orderEntity.getEmployeeId());
//        entity.setOrderDate(orderEntity.getOrderDate().getTime());
//        entity.setShippingDate(orderEntity.getShippingDate().getTime());
//        entity.setNote(orderEntity.getNote());
//        entity.setShippingAmount(orderEntity.getShippingAmount());
//        entity.setTaxAmount(orderEntity.getTaxAmount());
//        entity.setOrderStatus(orderEntity.getOrderStatus());
//        entity.setOtherCharge(orderEntity.getOtherCharge());
//        entity.setDueAmount(orderEntity.getDueAmount());
//        entity.setTotalAmount(orderEntity.getTotalAmount());
//        return entity;  //To change body of created methods use File | Settings | File Templates.
//    }

//    public static PaymentEntity mapEntityToModel(Payment payment) {
//        PaymentEntity entity=new PaymentEntity();
//        entity.setAmount(payment.getAmount());
//        entity.setNote(payment.getNote());
//        entity.setCustomerId(payment.getCustomerId());
//        entity.setEmployeeId(payment.getEmployeeId());
//        entity.setId(payment.getId());
//        return entity;  //To change body of created methods use File | Settings | File Templates.
//    }

//    public static OrderItemEntity mapEntityToModel(OrderItem orderItem) {
//        OrderItemEntity entity=new OrderItemEntity();
//       // entity.setOrderId(orderItem.getOrderId());
//        entity.setUser(mapModelToEntity(orderItem.getUser()));
//        entity.setQuantity(orderItem.getQuantity());
//        entity.setSalePrice(orderItem.getSalePrice());
//
//        return entity;  //To change body of created methods use File | Settings | File Templates.
//    }

    public static StatusEntity mapEntityToModel(Status status) {
        StatusEntity entity = new StatusEntity();
        entity.setId(status.getId());
        entity.setName(status.getName());
        entity.setDescription(status.getDescription());
        return entity;  //To change body of created methods use File | Settings | File Templates.
    }
}
